#!/bin/bash

#######################################################
# Instalador do Sistema Gerenciador de Projetos Finais
#######################################################



# Dependencias

aptitude install apache2 php5 mysql-client mysql-server php5-mysql libapache2-mod-auth-mysql libapache2-mod-php5 -y

clear

# Variaveis
EXIT='A instalacao nao foi concluida.'
INSTALLDIR=$1


# Validacao do diretorio de instalacao

if [ ! -z $INSTALLDIR ]; then
	if [ ! -d $INSTALLDIR ]; then
		mkdir $INSTALLDIR
		echo
		
		if [ ! -d $INSTALLDIR ]; then
			echo 'O diretorio de instalacao nao pode ser criado.'
			echo 'Sugestao: verifique se o diretorio-pai do diretorio de instalacao existe.'
			echo $EXIT
			exit 0
		fi
	else 
		echo "O diretorio $INSTALLDIR ja existe!"
		echo $EXIT
		exit 0	
	fi

	cd $INSTALLDIR
	aux=$(pwd | grep /var/www)

	if [ -z $aux ]; then
		echo 'Diretorio de instalacao invalido!'
		echo 'O diretorio de instalacao precisa estar em /var/www'
		echo $EXIT
		exit 0
	else 
		INSTALLDIR=$(pwd)
	fi

	cd -
else
	echo 'Voce nao escolheu um diretorio para a instalacao do sistema.'
	echo $EXIT
fi

INSTALLDIRESCAPED=$(echo $INSTALLDIR | sed 's/\//\\\//g')


# Nome de usuario e senha de administracao

echo "Digite um nome de usuario e senha para a conta de administracao:"
read -p "Nome de usuario: " username
stty -echo
read -p "Senha: " password
stty echo
echo 

if [ -z $username ] || [ -z $password ]; then
	echo "Nome de usuario e/ou senha invalidos"
	echo $EXIT
	rm -r $INSTALLDIR
	exit 0
fi


# Configuracao do banco

read -p "Digite um nome para o banco de dados (default: projetos_finais): " database

if [ -z $database  ]; then database=projetos_finais; fi

echo
echo "ATENCAO: Se ja existir um banco de dados com nome igual ao fornecido, ele sera sobrescrito!"
echo
read -p "Deseja continuar com a criacao do banco de dados? [s/n]: " aux
	
if [ -z $aux ]; then aux='_'; fi

while [ $aux != 'n' ] && [ $aux != 's' ]; do
	read -p "Deseja continuar com a criacao do banco de dados? [s/n]: " aux
	if [ -z $aux ]; then aux='_'; fi
done

if [ $aux == 'n' ]; then
	echo $EXIT
	rm -r $INSTALLDIR
	exit 0
fi

stty -echo
read -p "Digite a senha de root do MySQL: " rootmysql
stty echo
echo

mysql -u root -p$rootmysql -e "DROP DATABASE IF EXISTS $database"
mysql -u root -p$rootmysql -e "CREATE DATABASE $database"
mysql -u root -p$rootmysql -e "GRANT ALL PRIVILEGES ON $database.* TO '$username'@'localhost' IDENTIFIED BY '$password'"
mysql $database < database.sql -u $username -p$password


# Configuracao do sistema

cp -r projetos-finais/* $INSTALLDIR
cp -r projetos-finais/.* $INSTALLDIR

# mod_rewrite
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bkp.sgpf
cp mod_rewrite.cfg.default mod_rewrite.cfg
sed -i 's/INSTALLDIR/'$INSTALLDIRESCAPED'/g' mod_rewrite.cfg
cat mod_rewrite.cfg >> /etc/apache2/apache2.conf
a2enmod rewrite
/etc/init.d/apache2 restart

cd $INSTALLDIR

chmod -R 766 app/tmp
chmod +x . -R

cp app/config/database.php.default app/config/database.php
sed -i 's/sgpfLogin/'$username'/g' app/config/database.php
sed -i 's/sgpfPasswd/'$password'/g' app/config/database.php
sed -i 's/sgpfDatabase/'$database'/g' app/config/database.php

htpasswd -bc sgpf-passwd $username $password

cp .htaccess.default .htaccess
sed -i 's/sgpf-passwd/'$INSTALLDIRESCAPED'\/sgpf-passwd/g' .htaccess

cd -

echo
echo
echo INSTALACAO CONCLUIDA
